home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / math.swg / 0068_Prime Numbers.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-26  |  2KB  |  59 lines

  1. {
  2. JT>Does anyone know of anyway to code a prime number generator??  I've had
  3. JT>some ideas, but none so far that have worked... I am just learning Pascal
  4. JT>right now, so I do need some help... Any would be appreciated because
  5. JT>this is for a class assignment!!  ThankX
  6.  
  7. Try this:
  8.  
  9. ------ take scissors and cut here :-)  ------------------------ }
  10.  
  11. program priem;
  12.  
  13. {Program creates prime numbers.
  14.  
  15. Working of the program:
  16. - an array is created where found prime numbers are stored.
  17. Checking whether a number is prime:
  18. - the number is checked with the previously found prime number
  19. if it is prime
  20. - if it is prime it is stored in the array and printed}
  21.  
  22. const
  23. maxpriems=10000;
  24.  
  25. type
  26. priemarrtype=array[1..maxpriems] of longint; {array to store primes}
  27.  
  28. var
  29. priemarr: priemarrtype;
  30. nrofpriem: word;
  31. number, divider: longint;
  32. isapriemnumber: boolean;
  33.  
  34. begin {priem}
  35. number:=1;
  36. nrofpriem:=0; {number of prime numbers already found}
  37. while(nrofpriem<maxpriems) do
  38. begin
  39. inc(number);
  40. isapriemnumber:=true;
  41. divider:=1;
  42. while (isapriemnumber) and (divider<=nrofpriem) do
  43. begin
  44. if (number mod priemarr[divider]=0)
  45. {calculate "remains" of division}
  46. then isapriemnumber:=false {no prime}
  47. else inc(divider) {get next prime}
  48. end; { not (isapriemnumber) or (divider>nrofpriem) }
  49. if (isapriemnumber) then
  50. begin {a prime number is found}
  51. inc(nrofpriem);
  52. priemarr[nrofpriem]:=number; {store it in the array}
  53. writeln('prime number ',nrofpriem:5,' found is:
  54. ',priemarr[nrofpriem]:8)
  55. end
  56. end; { nrofpriem>=maxpriems }
  57. end. {priem}
  58.  
  59.